Integrated media browse and insertion

ABSTRACT

An application can receive a request to insert one file into another file opened for editing within the application. The request can be either in-line or through a menu system of the application. The request can include a context for the file to be inserted. The system can then identify a set of files that can satisfy the context, from which a user can choose what file is to be inserted. The chosen file can then be inserted into the file opened for editing, all without leaving the application.

FIELD

This invention pertains to file editing, and more particularly tointegrating file browse and insertion into file editors.

BACKGROUND

Often, while editing a file, a user wants to insert content from anotherfile. For example, a user might want to insert a picture into a textdocument, where the picture helps to emphasize a point in the textdocument. But to do such an insertion, the user must interrupt thestream of thought associated with the text of the document. The usermust then locate the desired file to insert, often by switching out ofthe text editor into a file explorer, find the directory in which thedesired file is stored, open the file, and copy the picture into thetext editor.

Some applications attempt to make the process simpler, by allowing theuser to activate a file explorer within the application to locate adesired picture. But the user must still interrupt his train of thoughtto insert the picture.

A need remains for a way to address these and other problems associatedwith the prior art.

SUMMARY

While editing a file, a computer can receive a request to insert anotherfile into the edited file. The request can include a context for thedesired file to be inserted. The system can then identify a set of filesthat satisfies the content, and the user can select one of the files tobe inserted. The system can then insert the selected file into theedited file.

The foregoing and other features, objects, and advantages of theinvention will become more readily apparent from the following detaileddescription, which proceeds with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a machine to support integrated media browse and insertion,according to an embodiment of the invention.

FIG. 2 shows a document on the machine of FIG. 1 with integrated mediabrowse and insertion.

FIG. 3 shows sets of files from which a user can select to insert a filein the machine of FIG. 1.

FIG. 4 shows a flowchart of a procedure to perform integrated mediabrowse and insertion, according to an embodiment of the invention.

DETAILED DESCRIPTION

FIG. 1 shows a machine to support integrated media browse and insertion,according to an embodiment of the invention. In FIG. 1, machine 105 isshown. Machine 105 can be any machine capable of permitting a user toinsert one file into another. Examples of forms machine 105 can takeinclude servers, personal computers, mainframes, smart phones, andtablet computers, among other possibilities. Machine 105 can includecomputer 110, monitor 115, keyboard 120, and mouse 125. A person skilledin the art will recognize that other components not shown in FIG. 1 canbe included with machine 105: for example, other input/output devices,such as a printer. In addition, FIG. 1 does not show some of theconventional internal components of machine 105; for example, a centralprocessing unit, memory, storage, etc. Finally, although FIG. 1 showsmachine 105 as a conventional desktop computer, a person skilled in theart will recognize that machine 105 can be any type of machine orcomputing device capable of providing the services attributed herein tomachine 105, including, for example, a laptop computer, PDA, or acellular telephone.

Machine 105 includes application 130. Application 130 can be any type ofapplication that can work on a file, such as file 135. For purposes ofthis discussion, application 130 is assumed to be a text editingapplication, file 135 is assumed to be a text document, and the insertedmedia file is assumed to be an image file. But a person skilled in theart will recognize that focusing on text editors, text documents, andimage files is simply for ease of understanding of embodiments of theinvention, and that embodiments of the invention are applicable to anytype of application, to any type of file that can be operated on by thatapplication, and to any type of file that can be inserted into the filebeing operated on by the application.

To enable users to integrate other files, machine 105 includes receiver140, set identifier 145, chooser 150, and inserter 155. Receiver 140receives the user's request to integrate the other file into the editedfile. Set identifier 145 identifies a set of files that hopefullyincludes the other file the user wants to insert into the document.Chooser 150 lets the user select one of the identified set of files asthe other file, and inserter 155 inserts the chosen file into thedocument.

Although FIG. 1 suggests that receiver 140, set identifier 145, chooser150, and inserter 155 are separate from application 130, a person ofordinary skill in the art will recognize that these components can beintegrated. That is, application 130 can include some or all of thesecomponents. For example, receiver 140 can be integrated into application130, so that the user can request to insert the file from withinapplication 130. Receiver 140 can then pass the request to the othercomponents to be processed.

Receiver 140 can receive the request from the user to insert the otherfile in many different ways. For example, application 130 can include amenu-accessible command that starts the process of inserting the otherfile. Or, receiver 140 can scan the text the user is inputting toapplication 130, and recognize an in-line request to insert a file. FIG.2 shows an example of an in-line request.

In FIG. 2, text document 135 is shown. The user has been typing the textof the document. After reviewing the text, the user has positionedcursor 205 in the middle of the text, and inserted text 210 (representedby the dashed line). Text 210 is a request to insert an image into thedocument, specifically, an image of the U.S. Capitol building.

After processing request 210, text document 135 is modified to removetext 210 and to replace it with image 215. Although FIG. 2 shows theimage as taking up entirety of the column to represent image 215 (thatis, there is no text wrapping around the image, either on its right orleft side), a person of ordinary skill in the art will recognize thatimage 215 could be inserted in any layout. Request 210 could alsospecify specific formatting and/or layout of image 215. For example,request 210 could specify “Insert image of U.S. Capitol building rightjustified, scaled to 2″ wide”. Parsing request 210 can identify suchformatting/layout information.

As shown in FIG. 2, after request 210 is processed, metadata 220 isstored with image 215. Metadata 220 is shown as including the text ofrequest 210. The text of request 210 is also known as the context of therequest. By storing context 210 as metadata 220, embodiments of theinvention permit users to revisit their searches and make modifications.If context 210 is refined, metadata 220 can store all the various formstaken by context 210, including the initial form and all laterrevisions. In this manner, embodiments of the invention permit a user toreturn to an earlier context, if a later refined context is notconsidered useful.

When image 215 is inserted in text document 135, image 215 can beinserted either as a static image or an embedded image (also called adynamic image). A static image is just that: static. That is, image 215reflects the state of the source file at the time image 215 was insertedinto text document 135. If the source file of image 215 later changes,image 215 as inserted into text document 135 does not update to reflectthis change. Using static images can be helpful as the user does notneed to worry that the source file might change to a file that no longersatisfies the context.

On the other hand, image 215 can be an embedded image. An embedded imagechanges over time to reflect the current state of the source file. Thus,for example, if image 215 is modified to include color, image 215 asinserted in text document 135 can reflect the addition of color. Usingembedded images can be helpful as the user does not need to worry aboutmaking sure updates to the source file are reflected wherever the sourcefile is embedded.

Whether a media file is inserted as a static or embedded file can bespecified in the context, or can be set as an option within theapplication. A person of ordinary skill in the art will recognize otherways in which the user can control whether a media file is inserted as astatic or embedded file.

Although facially a “request” or a “context” might seem to be a queryusing a new name, a person of ordinary skill in the art will recognizethat a “context” is broader than a query. For example, as discussedabove, context 210 can include information about how to format theinserted file. The selection of a data set member that satisfies a“query” does not depend on what will be done with the selected member(e.g., formatting) after it is located. Thus, context 210 is a broaderconcept than an ordinary query.

One question that might occur to a reader is what happens if the userintended to include context 210 as actual text within document 135: thatis, the user did not want to perform an in-line insertion? In oneembodiment of the invention, whether in-line insertion occurs can beturned on and off as an option within the application. In anotherembodiment of the invention, the user can “undo” an in-line insertion,reverting to the “text” of context 210, by performing an undo command.

FIG. 3 shows sets of files from which a user can select to insert a filein the machine of FIG. 1. In FIG. 3, 12 files are shown (although onlyimages of two of the files are actually shown); a person of ordinaryskill in the art will recognize that there can be any number of files,and not just 12. The 12 files shown in FIG. 3 are organized into threesets: set 305, set 310, and image 315 (which forms a set unto itself).

Based on the context of the request to insert the file, embodiments ofthe invention can select a particular group of images from which topermit the user to select an image. For example, the context from thetext document in FIG. 2 requested to insert an image of the U.S. Capitolbuilding. Set 305 includes such an image, and could be selected as theset from which the user can select the desired image.

One question that might arise from the description provided is how thefiles in FIG. 3 are organized into sets 305 and 310, and image 315.There are several technologies available today that can provideinformation about the relationships among various members. For example,U.S. patent application Ser. No. 12/568,190, filed Sep. 28, 2009, titled“OPTIMAL SEQUENTIAL (DE)COMPRESSION OF DIGITAL DATA”, U.S. patentapplication Ser. No. 12/575,652, filed Oct. 8, 2009, titled“ENCRYPTION/DECRYPTION OF DIGITAL DATA USING RELATED, BUT INDEPENDENTKEYS”, U.S. patent application Ser. No. 12/616,306, filed Nov. 11, 2009,titled “DIGITAL SPECTRUM OF FILE BASED ON CONTENTS”, U.S. patentapplication Ser. No. 12/637,807, filed Dec. 15, 2009, titled “GROUPINGAND DIFFERENTIATING FILES BASED ON CONTENT”, U.S. patent applicationSer. No. 12/648,542, filed Dec. 29, 2009, titled “GROUPING ANDDIFFERENTIATING FILES BASED ON UNDERLYING GROUPED AND DIFFERENTIATEDFILES”, U.S. patent application Ser. No. 12/649,584, filed Dec. 30,2009, titled “OPTIMIZED PARTITIONS FOR GROUPING AND DIFFERENTIATINGFILES OF DATA”, U.S. patent application Ser. No. 12/649,688, filed Dec.30, 2009, titled “STOPPING FUNCTIONS FOR GROUPING AND DIFFERENTIATINGFILES BASED ON CONTENT”, U.S. patent application Ser. No. 12/684,313,filed Jan. 8, 2010, titled “GROUPING AND DIFFERENTIATING VOLUMES OFFILES”, U.S. patent application Ser. No. 12/759,414, filed Apr. 13,2010, titled “RELEVANCY FILTER FOR NEW DATA BASED ON UNDERLYING FILES”,U.S. patent application Ser. No. 12/720,897, filed Mar. 10, 2010, titled“HARVESTING RELEVANCY DATA, INCLUDING DYNAMIC RELEVANCY AGENT BASED ONUNDERLYING GROUPED AND DIFFERENTIATED FILES”, U.S. patent applicationSer. No. 12/985,899, filed Jan. 6, 2011, titled “SEMANTIC ASSOCIATIONSIN DATA”, U.S. patent application Ser. No. 13/019,577, filed February02, 2011, titled “ANIMATING INANIMATE DATA”, U.S. patent applicationSer. No. 13/033,490, filed Feb. 23, 2011, titled “STRUCTURED RELEVANCE—AMECHANISM TO REVEAL “HOW” DATA IS RELATED”, U.S. patent application Ser.No. 13/033,509, filed Feb. 23, 2011, titled “STRUCTURED RELEVANCE—AMECHANISM TO REVEAL “WHY” DATA IS RELATED”, U.S. patent application Ser.No. 13/051,376, filed Mar. 18, 2011, titled “GENERATING AND MERGING KEYSFOR GROUPING AND DIFFERENTIATING VOLUMES OF FILES”, U.S. patentapplication Ser. No. 13/070,026, filed Mar. 23, 2011, titled“POSITIONING RELATIONSHIPS BETWEEN GROUPS OF FILES”, U.S. patentapplication Ser. No. 13/103,400, filed May 9, 2011, titled “A METHOD FORFINDING OPTIMIZED RELEVANCY GROUP”, all of which are incorporated byreference herein, are patent applications that describe ways ofdetermining relationships among members of a data set. But a personskilled in the art will recognize that there are other ways in which todetermine relationships between members of a data set.

The grouping of the members of the overall data set into the varioussets shown in FIG. 3, and determining the associated tags for themembers of the sets, can be done in advance of the use of embodiments ofthis invention. Thus, by the time the user queries for an image of theU.S. Capitol building, set 305 can already have been tagged as storingfiles relating to the U.S. Capitol building.

Other technologies are also useful in determining which files belong invarious sets. For example, U.S. patent application Ser. No. 12/985,899,filed Jan. 6, 2011, titled “SEMANTIC ASSOCIATIONS IN DATA”, which isincorporated by reference herein, helps to correlate information betweenfiles. For example, the images in set 305 are all tagged as beingrelated to the U.S. Capitol. If one of these images is later tagged asrelating to the U.S. government, U.S. patent application Ser. No.12/985,899, filed Jan. 6, 2011, titled “SEMANTIC ASSOCIATIONS IN DATA”,associates the “U.S. government” tag with the other images in set 305.U.S. patent application Ser. No. 12/985,899, filed Jan. 6, 2011, titled“SEMANTIC ASSOCIATIONS IN DATA”, can also be used to bridge files ofdifferent types. For example, if all the files in set 305 are imagefiles, and later an audio file (e.g., a sound clip) is tagged asrelating to the U.S. Capitol building, U.S. patent application Ser. No.12/985,899, filed Jan. 6, 2011, titled “SEMANTIC ASSOCIATIONS IN DATA”,can be used to add the newly tagged audio file to set 305.

Another technology that can be used to merge groups of files is U.S.patent application Ser. No. 13/033,509, filed Feb. 23, 2011, titled“STRUCTURED RELEVANCE—A MECHANISM TO REVEAL WHY DATA IS RELATED”, whichis incorporated by reference herein, describes how to join two groups ina graph. If it is determined that two different groups (separated,perhaps, because they include files of different types) are related,U.S. patent application Ser. No. 13/033,509, filed Feb. 23, 2011, titled“STRUCTURED RELEVANCE—A MECHANISM TO REVEAL WHY DATA IS RELATED”, can beused to merge the two groups, so that all the files can be presented tothe user at the same time.

When the user selects a particular file (such as image 215) from set305, the selection of the specific image actually refines the context.Now, instead of being interested in an image of the U.S. Capitolbuilding, the user is interested in an image of the U.S. Capitolbuilding, as represented by the source file for image 215. Although thismight not necessarily be useful if the source file for image 215 isalready part of set 305, what if the user ends up selecting a file notin set 305? U.S. patent application Ser. No. 12/759,414, filed Apr. 13,2010 titled “RELEVANCY FILTER FOR NEW DATA BASED ON UNDERLYING FILES”,which is incorporated by reference herein, can take a grouping of files(such as sets 305 and 310 and image 315) and an unprocessed file, anddetermine what group that file belongs to. So, if the context requestedan image of the U.S. Capitol building, but the user ultimately selects afile not in set 305, U.S. patent application Ser. No. 12/759,414, filedApr. 13, 2010 titled “RELEVANCY FILTER FOR NEW DATA BASED ON UNDERLYINGFILES”, can determine what set the unprocessed file belongs in.Performing this processing not only adds the unprocessed file to aparticular group, but it can also update the tags on the group: asdiscussed above with reference to U.S. patent application Ser. No.12/985,899, filed Jan. 6, 2011, titled “SEMANTIC ASSOCIATIONS IN DATA”,linking the new file to a group also updates any other metadata relatingto the files in the group and the new file.

FIG. 3 shows set of files. When a set is identified as possiblyincluding the desired file to satisfy the context, the files in the setcan be presented to the user in any desired manner. The files can bepresented linearly: the files are presented to the user in a line, whichthe user can scroll left/right to find a particular file. The files canbe presented hierarchically: when the user clicks on a particular file,it does not necessarily select that file, but can change the display tocenter on that file (and to organize the remaining files in the setbased on their relative “distance” from that file). The files can bepresented dynamically, where the particular presentation to be used canbe based on prior searches. A person of ordinary skill in the art willrecognize other ways in which the files can be presented to the user.

FIG. 4 shows a flowchart of a procedure to perform integrated mediabrowse and insertion, according to an embodiment of the invention. InFIG. 4, at block 405, the system receives a request to insert a file. Asdiscussed above, this request includes a context for the file to beinserted. At block 410, the system identifies a location where the fileis to be inserted. At block 415, the system identifies a set of filesfrom which the (hopefully) desired file can be found. At block 420, thesystem receives the user's selection of the file to be inserted. Atblock 425, the system inserts the selected file at the location. Theinserted file can be either static or dynamic. At block 430, the systemassociates metadata with the inserted file. The metadata can include thecontext of the request.

Searches can be divided into 4 cases: (1) known and expected (the useris looking for a known item); (2) unknown but expected (the user islooking for an item that is likely to exist) (3) unknown but possible(the user is looking for an item that might exist); and (4) unknown andunexpected (the user does not really know what he is looking for).Embodiments of the invention make it possible, or at least easier, forusers to perform file searches. In particular, embodiments of theinvention make it easier to locate desired items in cases (2) and (3),make it easier to locate desired items in case (1), and make it possibleto locate items in case (4).

The following discussion is intended to provide a brief, generaldescription of a suitable machine in which certain aspects of theinvention can be implemented. Typically, the machine includes a systembus to which is attached processors, memory, e.g., random access memory(RAM), read-only memory (ROM), or other state preserving medium, storagedevices, a video interface, and input/output interface ports. Themachine can be controlled, at least in part, by input from conventionalinput devices, such as keyboards, mice, touch screens, etc., as well asby directives received from another machine, interaction with a virtualreality (VR) environment, biometric feedback, or other input signal. Asused herein, the term “machine” is intended to broadly encompass asingle machine, or a system of communicatively coupled machines ordevices operating together. Exemplary machines include computing devicessuch as personal computers, workstations, servers, portable computers,handheld devices, telephones, tablets, etc., as well as transportationdevices, such as private or public transportation, e.g., automobiles,trains, cabs, etc.

The machine can include embedded controllers, such as programmable ornon-programmable logic devices or arrays, Application SpecificIntegrated Circuits, embedded computers, smart cards, and the like. Themachine can utilize one or more connections to one or more remotemachines, such as through a network interface, modem, or othercommunicative coupling. Machines can be interconnected by way of aphysical and/or logical network, such as an intranet, the Internet,local area networks, wide area networks, etc. One skilled in the artwill appreciate that network communication can utilize various wiredand/or wireless short range or long range carriers and protocols,including radio frequency (RF), satellite, microwave, Institute ofElectrical and Electronics Engineers (IEEE) 545.11, Bluetooth, optical,infrared, cable, laser, etc.

The invention can be described by reference to or in conjunction withassociated data including functions, procedures, data structures,application programs, instructions, etc. which, when accessed by amachine, result in the machine performing tasks or defining abstractdata types or low-level hardware contexts. Associated data can be storedin, for example, the volatile and/or non-volatile memory, e.g., RAM,ROM, etc., or in other storage devices and their associated storagemedia, including hard-drives, floppy-disks, optical storage, tapes,flash memory, memory sticks, digital video disks, biological storage,and other tangible, non-transitory physical storage media. Associateddata can also be delivered over transmission environments, including thephysical and/or logical network, in the form of packets, serial data,parallel data, propagated signals, etc., and can be used in a compressedor encrypted format. Associated data can be used in a distributedenvironment, and stored locally and/or remotely for machine access.

Having described and illustrated the principles of the invention withreference to illustrated embodiments, it will be recognized that theillustrated embodiments can be modified in arrangement and detailwithout departing from such principles, and can be combined in anydesired manner. And although the foregoing discussion has focused onparticular embodiments, other configurations are contemplated. Inparticular, even though expressions such as “according to an embodimentof the invention” or the like are used herein, these phrases are meantto generally reference embodiment possibilities, and are not intended tolimit the invention to particular embodiment configurations. As usedherein, these terms can reference the same or different embodiments thatare combinable into other embodiments.

Consequently, in view of the wide variety of permutations to theembodiments described herein, this detailed description and accompanyingmaterial is intended to be illustrative only, and should not be taken aslimiting the scope of the invention. What is claimed as the invention,therefore, is all such modifications as can come within the scope andspirit of the following claims and equivalents thereto.

1. An apparatus, comprising: a computer (105); an application (130)running on the computer (105), the application (130) for editing a firstfile (135); a receiver (140) within the application (130) to receive arequest to insert a second file (215) into said first file (135), saidrequest including a context (210) for said second file (215), saidcontext (210) including a desired content for said second file (215),said request associated with a location (205) in said first file (135);a set identifier (145) to identify a set of files (305, 310, 315) thatsatisfy said context (210) for said second file (215); a chooser (150)with the application (130) to permit a user to choose said second file(215) from said set of files (305, 310, 315) without leaving theapplication (130); an inserter (155) to insert said second file (215)into said first file (135) at said location (205) in said first file(135).
 2. An apparatus according to claim 1, wherein: the application(130) includes a text editor (130); and said first file (135) includes atext document (135).
 3. An apparatus according to claim 2, wherein thereceiver (140) is operative to receive said request in-line with text ofsaid text document (135).
 4. An apparatus according to claim 2, whereinthe receiver (140) is operative to receive said request from a menu ofthe text editing application (130).
 5. An apparatus according to claim2, wherein the inserter (155) includes a metadata associator toassociate metadata (220) including said context (210) for said secondfile (215) with said second file (215) inserted into said text document(135) at said location (205) in said text document (135).
 6. Anapparatus according to claim 2, wherein: the receiver (140) within thetext editing application (130) is operative to receive a second requestto insert a third file (320) into said text document (135), said requestincluding a refined context (210) for said third file (320); the setidentifier (145) is operative to identify a second set of files (305,310, 315) that satisfy said refined context (210) for said third file(320); the chooser (150) with the text editing application (130) isoperative to permit said user to choose said third file (320) from saidsecond set of files (305, 310, 315) without leaving the text editingapplication (130); the inserter (155) is operative to insert said thirdfile (320) into said text document (135) at said location (205) in saidtext document (135).
 7. An apparatus according to claim 6, wherein theinserter (155) includes a metadata associator to associate metadata(220) including said refined context (210) for said third file (320)with said third file (320) inserted into said text document (135) atsaid location (205) in said text document (135).
 8. An apparatusaccording to claim 2, wherein said second file (215) is inserted intosaid text document (135) at said location (205) in said text document(135) as an embedded object.
 9. A method, comprising: within anapplication (130) running on a computer (105) for editing a first file(135), receiving (405) a request to insert a second file (215) into thefirst file (135), the request including a context (210) for the secondfile (215), the context (210) identifying a desired content for thesecond file (215); identifying (410) a location (205) in the first file(135) where the second file (215) is to be inserted; identifying (415) aset of files (305, 310, 315) that satisfy the context (210) for thesecond file (215); permitting (420) a user to select the second file(215) from the set of files (305, 310, 315) without leaving theapplication (130) for editing the first file (135); and inserting (425)the second file (215) into the first file (135) at the location (205) inthe first file (135).
 10. A method according to claim 9, wherein:receiving (405) a request to insert a second file (215) into a firstfile (135) includes, within a text editing application (130) running onthe computer (105) for editing a text document (135), receiving (405)the request to insert the second file (215) into the text document(135), the request including the context (210) for the second file(215); identifying (410) a location (205) in the first file (135) wherethe second file (215) is to be inserted includes identifying (410) alocation (205) in the text document (135) where the second file (215) isto be inserted; permitting (420) a user to select the second file (215)from the set of files (305, 310, 315) includes permitting (420) the userto select the second file (215) from the set of files (305, 310, 315)without leaving the text editing application (130) for editing the textdocument (135); and inserting (425) the second file (215) into the firstfile (135) includes inserting (425) the second file (215) into the textdocument (135) at the location (205) in the text document (135).
 11. Amethod according to claim 10, wherein receiving (405) the request toinsert the second file (215) into a text document (135) includesreceiving (405) the request to insert the second file (215) into a textdocument (135), the request including the context (210) for the secondfile (215), the request coming in-line with text of the text document(135) from within the text editing application (130) for editing thetext document (135).
 12. A method according to claim 10, whereinreceiving (405) the request to insert the second file (215) into a textdocument (135) includes receiving (405) the request to insert the secondfile (215) into a text document (135), the request including the context(210) for the second file (215), the request coming via a menu of thetext editing application (130) for editing the text document (135). 13.A method according to claim 10, wherein inserting (425) the second file(215) into the text document (135) includes associating (430) metadata(220) including the context (210) for the second file (215) with thesecond file (215) inserted into the text document (135) at the location(205) in the text document (135).
 14. A method according to claim 10,further comprising: within the text editing application (130) running onthe computer (105) for editing the text document (135), receiving (405)a second request to insert a third file (320) into the text document(135) in place of the second file (215), the request including a refinedcontext (210) for the third file (320); identifying (415) a second setof files (305, 310, 315) that satisfy the refined context (210) for thethird file (320); permitting (420) the user to select the third file(320) from the second set of files (305, 310, 315) without leaving thetext editing application (130) for editing the text document (135); andreplacing the second file (215) with the third file (320) at thelocation (205) in the text document (135).
 15. A method according toclaim 14, wherein replacing the second file (215) with the third file(320) includes associating (430) metadata (220) including the refinedcontext (210) for the third file (320) with the third file (320)inserted into the text document (135) at the location (205) in the textdocument (135), the refined context (210) including metadata (220)associated with the second file (215) inserted at the location (205) inthe text document (135).
 16. A method according to claim 10, whereininserting (425) the second file (215) into the text document (135) atthe location (205) in the text document (135) includes inserting (425)the second file (215) into the text document (135) at the location (205)as an embedded object.
 17. An article, comprising a tangible storagemedium, the tangible storage medium having stored thereon instructionsthat, when executed by a machine, result in: within an application (130)running on a computer (105) for editing a first file (135), receiving(405) a request to insert a second file (215) into the first file (135),the request including a context (210) for the second file (215), thecontext (210) identifying a desired content for the second file (215);identifying (410) a location (205) in the first file (135) where thesecond file (215) is to be inserted; identifying (415) a set of files(305, 310, 315) that satisfy the context (210) for the second file(215); permitting (420) a user to select the second file (215) from theset of files (305, 310, 315) without leaving the application (130) forediting the first file (135); and inserting (425) the second file (215)into the first file (135) at the location (205) in the first file (135).18. An article according to claim 17, wherein: receiving (405) a requestto insert a second file (215) into a first file (135) includes, within atext editing application (130) running on the computer (105) for editinga text document (135), receiving (405) the request to insert the secondfile (215) into the text document (135), the request including thecontext (210) for the second file (215); identifying (410) a location(205) in the first file (135) where the second file (215) is to beinserted includes identifying (410) a location (205) in the textdocument (135) where the second file (215) is to be inserted; permitting(420) a user to select the second file (215) from the set of files (305,310, 315) includes permitting (420) the user to select the second file(215) from the set of files (305, 310, 315) without leaving the textediting application (130) for editing the text document (135); andinserting (425) the second file (215) into the first file (135) includesinserting (425) the second file (215) into the text document (135) atthe location (205) in the text document (135).
 19. An article accordingto claim 18, wherein receiving (405) the request to insert the secondfile (215) into a text document (135) includes receiving (405) therequest to insert the second file (215) into a text document (135), therequest including the context (210) for the second file (215), therequest coming in-line with text of the text document (135) from withinthe text editing application (130) for editing the text document (135).20. An article according to claim 18, wherein receiving (405) therequest to insert the second file (215) into a text document (135)includes receiving (405) the request to insert the second file (215)into a text document (135), the request including the context (210) forthe second file (215), the request coming via a menu of the text editingapplication (130) for editing the text document (135).
 21. An articleaccording to claim 18, wherein inserting (425) the second file (215)into the text document (135) includes associating (430) metadata (220)including the context (210) for the second file (215) with the secondfile (215) inserted into the text document (135) at the location (205)in the text document (135).
 22. An article according to claim 18, thetangible storage medium having stored thereon further instructions that,when executed by the machine, result in: within the text editingapplication (130) running on the computer (105) for editing the textdocument (135), receiving (405) a second request to insert a third file(320) into the text document (135) in place of the second file (215),the request including a refined context (210) for the third file (320);identifying (415) a second set of files (305, 310, 315) that satisfy therefined context (210) for the third file (320); permitting (420) theuser to select the third file (320) from the second set of files (305,310, 315) without leaving the text editing application (130) for editingthe text document (135); and replacing the second file (215) with thethird file (320) at the location (205) in the text document (135). 23.An article according to claim 22, wherein replacing the second file(215) with the third file (320) includes associating (430) metadata(220) including the refined context (210) for the third file (320) withthe third file (320) inserted into the text document (135) at thelocation (205) in the text document (135), the refined context (210)including metadata (220) associated with the second file (215) insertedat the location (205) in the text document (135).
 24. An articleaccording to claim 18, wherein inserting (425) the second file (215)into the text document (135) at the location (205) in the text document(135) includes inserting (425) the second file (215) into the textdocument (135) at the location (205) as an embedded object.